const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const webpack = require('webpack');

module.exports = {  
    mode: 'development', // production
    entry: {
        app: './src/index.js',
        // print: './src/print.js'
    },
    devtool: 'inline-source-map', // 开发环境下使用
    devServer: {
        contentBase: './dist', // 告诉开发服务器(dev server)，在哪里查找文件
        hot: true // 启用 webpack 的模块热替换特性
    },
    module: {
        rules: [
            {
                test: /\.css$/,
                use: [
                    'style-loader', // 将 JS 字符串生成为 style 节点
                    'css-loader' // 将 CSS 转化成 CommonJS 模块
                ]
            }
        ]
    },
    plugins: [
        new CleanWebpackPlugin({}),
        new HtmlWebpackPlugin({
            title: '模块热替换'
        }),
        new webpack.HotModuleReplacementPlugin() // 启用 HMR
    ],
    output: {
        filename: '[name].bundle.js',
        path: path.resolve(__dirname, 'dist'), // __dirname是nodejs的全局变量，表示当前文件所在的目录
        publicPath: '/' // 为所有资源指定一个基础路径
    }
};